package com.shrw.duke.serialport.port.p;

import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @author: ZengZhenHua
 * @date: 2018/12/20
 * @email: cengzhenghua@163.com
 */
public abstract class Port {
    /**
     * 初始化端口
     */
    public abstract void initPort();

    public abstract boolean isOpen();
    /**
     * 打开端口
     * @return 返回 {@link FileDescriptor},用来获取输入、输出流。
     */
    public abstract FileDescriptor open() throws SecurityException,IOException;

    /**
     * 关闭端口
     */
    public abstract void close();

    /**
     * 获取输入流，读取串口数据
     * @param fd
     * @return
     */
    public abstract FileInputStream getFileInputStream(FileDescriptor fd);

    /**
     * 获取输入流，发送数据
     * @param fd
     * @return
     */
    public abstract FileOutputStream getFileOutputStream(FileDescriptor fd);

    public abstract void destroy();
}
